package edu.gatech.oad.mule.view.interfaces;

import java.awt.Dimension;

/**
 * Provides all necessary methods to retrieve information necessary for
 * rendering one frame of a map.
 * 
 * @author Dale Avery
 * 
 */
public interface RenderableMap {

	/**
	 * Represents all of the regions a map can be representing.
	 * 
	 * @author Dale Avery
	 * 
	 */
	public static enum MapType {
		TOWN, WORLD, ERROR
	};

	/**
	 * @return The type of the map.
	 */
	public MapType getMapType();

	/**
	 * @return The size of the map.
	 */
	public Dimension getSize();

	/**
	 * @return A list of all renderable zones within the map.
	 */
	public RenderableZone[] getZones();

}// end interface RenderableMap
